import { IPSLanguageRes } from './ipslanguage-res';
import { IPSSysCss } from './ipssys-css';
import { IPSSysImage } from './ipssys-image';
import { IPSSysPFPlugin } from './ipssys-pfplugin';
import { IPSSysUniRes } from '../security/ipssys-uni-res';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysPortlet
 */
export interface IPSSysPortlet extends IPSModelObject {
  /**
   * 界面行为组展开模式
   * @description 值模式 [界面行为组展开模式] {ITEM：按项展开（默认）、 ITEMS：按分组展开 }
   * @type {( string | 'ITEM' | 'ITEMS')}
   */
  actionGroupExtractMode: string | 'ITEM' | 'ITEMS';

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 空白显示内容
   * @type {string}
   */
  emptyText: string;

  /**
   * 空白内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  getEmptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 空白内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  get emptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 空白内容语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getEmptyTextPSLanguageResMust(): IPSLanguageRes;

  /**
   * 高度
   * @type {number}
   */
  height: number;

  /**
   * 系统界面样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 系统界面样式表
   *
   * @type {IPSSysCss}
   */
  get psSysCss(): IPSSysCss | null;

  /**
   * 系统界面样式表（必须存在）
   *
   * @type {IPSSysCss}
   */
  getPSSysCssMust(): IPSSysCss;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  get psSysImage(): IPSSysImage | null;

  /**
   * 系统图片（必须存在）
   *
   * @type {IPSSysImage}
   */
  getPSSysImageMust(): IPSSysImage;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  get psSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 系统统一资源
   *
   * @type {IPSSysUniRes}
   */
  getPSSysUniRes(): IPSSysUniRes | null;

  /**
   * 系统统一资源
   *
   * @type {IPSSysUniRes}
   */
  get psSysUniRes(): IPSSysUniRes | null;

  /**
   * 系统统一资源（必须存在）
   *
   * @type {IPSSysUniRes}
   */
  getPSSysUniResMust(): IPSSysUniRes;

  /**
   * 预置样式
   * @description 值模式 [部件成员样式] {DEFAULT：默认样式、 STYLE2：样式2、 STYLE3：样式3、 STYLE4：样式4 }
   * @type {( string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4')}
   */
  portletStyle: string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4';

  /**
   * 部件类型
   * @description 值模式 [云平台门户部件类型] {LIST：实体列表、 CHART：实体图表、 VIEW：实体视图、 HTML：网页部件、 TOOLBAR：工具栏、 ACTIONBAR：操作栏、 CUSTOM：自定义 }
   * @type {( string | 'LIST' | 'CHART' | 'VIEW' | 'HTML' | 'TOOLBAR' | 'ACTIONBAR' | 'CUSTOM')}
   */
  portletType: string | 'LIST' | 'CHART' | 'VIEW' | 'HTML' | 'TOOLBAR' | 'ACTIONBAR' | 'CUSTOM';

  /**
   * 刷新间隔（毫秒）
   * @type {number}
   */
  reloadTimer: number;

  /**
   * 模板引擎
   * @type {string}
   */
  templEngine: string;

  /**
   * 抬头
   * @type {string}
   */
  title: string;

  /**
   * 抬头语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getTitlePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 抬头语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get titlePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 抬头语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getTitlePSLanguageResMust(): IPSLanguageRes;

  /**
   * 抬头绘制应用插件
   *
   * @type {IPSSysPFPlugin}
   */
  getTitlePSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 抬头绘制应用插件
   *
   * @type {IPSSysPFPlugin}
   */
  get titlePSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 抬头绘制应用插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getTitlePSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 支持应用全局数据看板
   * @type {boolean}
   */
  enableAppDashboard: boolean;

  /**
   * 支持实体数据看板
   * @type {boolean}
   */
  enableDEDashboard: boolean;

  /**
   * 显示抬头栏
   * @type {boolean}
   */
  showTitleBar: boolean;
}
